package TraitementMessages;

import mainProcess.MainProcessing;
import com.lo23.data.objpicture.*;
import com.lo23.data.objinterface.*;
import com.lo23.data.serializable.*;
import java.util.*;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 * @class PictureChallengeMessage
 * @author Vincent PALANCHER
 */
public class PictureChallengeMessage extends PictureMessage {

    private String pictureID;
    static final long serialVersionUID = 23201017L;

    public PictureChallengeMessage(String senderUID, String pictureID) {
        super(senderUID);
        this.pictureID = pictureID;
    }
    
    public void handleReceiption(MainProcessing mainProcessing) 
    {
        // Vérification si l'utilisateur distant a le droit de voir l'image
        if (mainProcessing.getTraitementData().CanSeeImage(this.senderUID, this.pictureID))
        {
            // Récupération de l'image
            Picture picture = mainProcessing.getTraitementData().getPicture(this.pictureID);

            // Création de l'objet PictureComm
            PictureCom pictCom = picture.getPictureCom(mainProcessing.getDataInterface().getLocalUser(null).getUid());

            // Vérification des droits de vue des commentaires
            if (!mainProcessing.getTraitementData().CanViewImageComment(this.senderUID, this.pictureID))
                pictCom.commentSerList.clear();

            // Création du message de réponse
            LocalUser lUser = mainProcessing.getDataInterface().getLocalUser(null);
            PictureAnswerMessage answerMessage = new PictureAnswerMessage(lUser.getuID(), pictCom);

            // Envoi du message de réponse
            ArrayList<String> destUIDs = new ArrayList<String>();
            destUIDs.add(this.senderUID);
            try {
                mainProcessing.getNetworkManager().sendMessage(destUIDs, answerMessage);
            } catch (Exception ex) {
                Logger.getLogger(SearchPictureAllMessage.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
    }
}
